package com.css.common.core.session;


import com.css.common.core.enums.XtqdEnum;
import com.css.common.core.enums.YhdlsfEnum;
import com.css.common.core.exception.ServiceException;
import com.css.common.core.utils.BaseUtil;
import com.css.common.core.utils.GyUtils;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class SessionUtils {

    /**
     * zfjkp的session字段
     * @return
     */

    public static Object get(String key){
        return SessionManager.get().getKey(key);
    }

    public static void set(String key,Object o){
        SessionManager.get().setKey(key,o);
    }

    /**
     * 用户登录账号
     */
    public static String getYhdlzh() {
        final String yhdlzh = SessionManager.get().getYhdlzh();
        return GyUtils.isNull(yhdlzh) ? "" : yhdlzh;
    }

    /**
     * 企业税号
     */
    public static String getQysh() {
        return SessionManager.get().getQysh();
    }
    /**
     * 企业认证类别
     */
    public static String qyrzlbDm() {
        return SessionManager.get().getQyrzlbDm();
    }


    /**
     * 企业名称
     */
    public static String getQymc() {
        return SessionManager.get().getQymc();
    }
    /**
     * 管理账号标志
     */
    public static String getGlzhbz() {
        return SessionManager.get().getGlzhbz();
    }

    /**
     * 企业id
     */
    public static String getQyid() {
        return SessionManager.get().getQyid();
    }
    /**
     * 自然人id
     */
    public static String getZrrid() {
        return SessionManager.get().getZrrid();
    }
    /**
     * 自然人姓名
     */
    public static String getZrrxm() {
        return SessionManager.get().getZrrxm();
    }
    /**
     * 自然人证件号码
     */
    public static String getZrrzjhm() {
        return SessionManager.get().getZrrzjhm();
    }
    /**
     * 自然人手机号码
     */
    public static String getZrrsjhm() {
        return SessionManager.get().getZrrsjhm();
    }
    /**
     * 用户登录身份代码
     */
    public static String getYhdlsfdm() {
        return SessionManager.get().getYhdlsfdm();
    }
    /**
     * 是否管理员企业
     */
    public static String getSfgly() {
        return SessionManager.get().getSfgly();
    }
    /**
     * 申请状态，0:待审核；1:审核通过；2:审核不通过
     */
    public static String getSqzt() {
        return SessionManager.get().getSqzt();
    }

    /**
     *系统渠道代码
     */
    public static Integer getXtqdDm() {
        return SessionManager.get().getXtqdDm();
    }

    //==========================api接口相关字段Start=================================================
    public static String getAppid() {
        return SessionManager.get().getAppid();
    }

    public static String getAppkey() {
        return SessionManager.get().getAppkey();
    }
    //==========================api接口相关字段End=================================================

    /**
     * 创建人
     */
    public static String getCjr() {
        final Session s = SessionManager.get();
        if (XtqdEnum.XTQD_XWTJR.getDm().equals(s.getXtqdDm())){
            return s.getAppid();
        }else if (YhdlsfEnum.YHDLSF_PTGLY.getDm().equals(s.getYhdlsfdm())){
            return s.getYhdlzh();
        }else{
            return s.getZrrid();
        }
    }

    /**
     * 校验用户权限
     * @param yhdlsfs 用户登录身份集合
     */
    public static void checkUserPermission(YhdlsfEnum... yhdlsfs){
        if(BaseUtil.isNull(yhdlsfs)) return;
        final List<String> yhdlsfList = Arrays.stream(yhdlsfs).map(YhdlsfEnum::getDm).collect(Collectors.toList());
        if(!yhdlsfList.contains(getYhdlsfdm()))
            throw new ServiceException("当前用户无权限");
    }

    /**
     * fxkp的session字段
     * @return
     */

    /**
     * 账户uuid
     */
    public static String getUuid() {
        return SessionManager.get().getUuid();
    }
    /**
     * 用户名
     */
    public static String getYhm() {
        return SessionManager.get().getYhm();
    }
    /**
     * 手机号
     */
    public static String getSjh() {
        return SessionManager.get().getSjh();
    }
    /**
     * 姓名
     */
    public static String getXm() {
        return SessionManager.get().getXm();
    }
    /**
     * 用户密码设置标志 Y已设置N未设置
     */
    public static String getYhmmszbz() {
        return SessionManager.get().getYhmmszbz();
    }
    /**
     * 实名认证标志 Y是N否
     */
    public static String getSmrzbz() {
        return SessionManager.get().getSmrzbz();
    }
    /**
     * 身份证件号码
     */
    public static String getSfzjhm() {
        return SessionManager.get().getSfzjhm();
    }
    /**
     * 用户类型 01自然人端、02企业端
     */
    public static String getUserType() {
        return SessionManager.get().getUserType();
    }
    /**
     * 用户信息
     */
    public static String getZrruuid(){
        return SessionManager.get().getZrruuid();
    }
    /**
     * 企业uuid
     */
    public static String getQyuuid() {
        return SessionManager.get().getQyuuid();
    }
    /**
     * 统一社会信用代码
     */
    public static String getTyshxyDm() {
        return SessionManager.get().getTyshxydm();
    }

}
